Repository navigation
fix(agc): transition resident attachment subresources - #6934
Conversation
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
Preserve JJenkx PR boykopovar#6934 at 1b70ce2. Retain its subresource-range barrier interface and map our additional image backing through that interface.
|
Thanks for the resident-subresource correction. #7085 builds its extra guest-mip backing on your exact Composition One additional observation: AI-assisted: yes (Codex); author responsible. |
|
Apple GPU / MoltenVK run with the Khronos validation layer, since macOS was not run. Machine: Apple M2 Max, macOS 27.2, x86-64 build under Rosetta. Head 1b70ce2. Method: macos-port @ b7eb6b6 + ImportWatched + PR diff, not main. The port has no
Full GPUs tested: Apple M2 Max (MoltenVK 1.4.2) Written with AI assistance (Claude Code). I ran the builds and tests above on my machine. |
|
Checked the diff: |
What
Immediate rendering to a resident mip or array-layer view transitions mip 0/layer 0 instead of the attachment subresource.
APS5_SYNC_DRAWS=1and target dumping can therefore issueVUID-vkCmdBeginRendering-pRenderingInfo-09592: the rendered subresource remainsGENERALwhile the attachment declaresCOLOR_ATTACHMENT_OPTIMAL.Pass the selected mip and array-layer range to both immediate resident-image barriers. A 3D image still uses its single Vulkan array layer; its selected depth slices belong to that mip. Transient-image callers keep their existing default range. Only
Draw.cppchanges, four lines replaced.Tested
Current-main-only head
1b70ce290fonea4cc112a0. Arch Linux 7.2.9-arch1-1, GCC 16.2.1 Release, Ryzen 9 7950X; RX 6650 XT / RADV Mesa 26.2.4-arch1.1 and lavapipe Mesa 26.2.4 / LLVM 23.1.1. Khronos validation layer 1.4.363, standard core checks; no explicit synchronization/GPU-assisted validation. Vulkan required, shader disk cache disabled,APS5_SYNC_DRAWS=1.libsand the three existing execution test binaries build.agc_driver_array_layer_target,agc_driver_packed_mip_tail_target,agc_driver_layered_volume_draw: 3/3 pass on RADV and 3/3 on lavapipe, zero skips and zero validation errors/VUIDs. The volume case verifies that array-layer selection is not confused with 3D depth slices; its mesh subcase validates shaders only.Draw.cppwith exact current-main source, keep the fixtures unchanged and rebuild. All three pixel tests still pass, but the array-target fixture reports two 09592 validation errors per driver, both on array layer 1 remaining inGENERAL. Restore/rebuild the fix: 3/3 pass with zero errors on both drivers again. The functional tests alone do not detect the API error; the validation logs do.c01f24339a1b(mainb260d8d792plus fix(agc): allow chunked imports as vertex and index buffers #6913/fix(agc): restrict sampled storage texture view usage #862/fix(agc): include the host stage in the CMASK clear's host-access barriers #6781 and diagnostic readbacks): the preceding target-dump run reports ten capped instances of the same VUID on mip 1. With this fix, the repeated target-dump run exits 0 after 97.64 s with zero validation errors/VUIDs and restored settings. This integration is not isolated current-main title validation. Very dark 3D rendering remains unchanged; no visual or FPS improvement is claimed. Bring-up and exact source.1b70ce290f3a2ef4d751c1f228540a589d3c1ff9commit and declares it as a prerequisite. Their compositionb605c6887passes extra-mip, image-level, array-target and packed-tail fixtures 3/3 on RTX 5080 / driver 32.0.16.1062 and Radeon Graphics / driver 32.0.21036.18, Windows 11 Enterprise 26200, with Vulkan required, shader cache disabled,APS5_SYNC_DRAWS=1and Khronos core 1.4.363: zero validation errors/warnings for those four groups. They also report Linux Mesa 25.2.8 llvmpipe 3/3 passes without explicitly enabled core validation. The layered-volume fixture passes 3/3 but emits tenWARNING-VkImageSubresourceRange-layerCount-compatibilitywarnings per physical run, including transfer barriers; these are not attributed solely to this change. These are attributed composition results, not standalone tests of this unchanged PR head.APS5_SYNC_DRAWS=1. Onmacos-portatb7eb6b6bplus ImportWatched, they applied this PR with the layer-range arguments adapted to one layer because that port lacksColorTarget::layers. The array-target fixture passes pixel checks on both trees, but two layer-1 layout errors (VUID-vkCmdDraw-None-09600) on the unchanged port become zero with the adapted change. Packed-tail has no layout errors on either tree, so this does not validate the mip fix. Both trees retain the same twelve unrelated multisample-storage image-creation errors (00968). Their broader suite reports 14/433 failures, including a cross-workgroup case reproduced 5/5 on the unchanged port. This is attributed adapted-port evidence, not a clean-main macOS run or zero-error full suite.origin/mainand whitespace pass. Required overlap check finds no confirmed overlap; its 22 conflicted shared-file heads were inspected at this helper and the resident barrier calls, with no selected-subresource implementation found. This is a scoped review, not a claim those whole branches combine cleanly.Sanitized report, negative/restored validation logs and patch, assets prefixed
resident-subresourceorsubresource-isolated. No new fixture, driver dependency or diagnostic code is included here. Standalone Windows/NVIDIA/macOS and full hosted builds have not been run by us; the external composition coverage above does not replace them. Full platform jobs require maintainer dispatch.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)